// 函数防抖: 如果已经启动了一次任务, 则将之前的任务取消, 重新开启新的任务
export function debounce(fn, delay = 300) {
    let timerId;
    return function () {
        const context = this;
        const args = arguments;
        if (timerId > 0) {
            // 清除之前的定时器
            clearTimeout(timerId);
        }
        // 重新启动新的定时器, 并记录定时器id
        timerId = setTimeout(function () {
            // 调用真正的事件处理函数
            fn.apply(context, args);
        }, delay);
    }
}